Deep Learning
14 de diciembre de 2024
Una red neuronal artificial, ANN por sus siglas en inglés artificial neural network modelan la relación entre un conjunto de señales de entrada y una señal de salida usando un modelo derivado desde nuestro entendimiento de cómo funciona un cerebro biológico ante estímulos externos.
Tal como un cerebro usa una red de células interconectadas llamadas neuronas, una red neuronal usa una red de neuronas artificiales o nodos para resolver problemas de aprendizaje.
Objetivo: construir un clasificador para predecir la clase de la imagen.
Construimos una red neuronal de dos capas con:
Sea \(Z_m = \beta_{m0} + \sum_{\ell=1}^{K_2} \beta_{m\ell} A_{\ell}^{(2)}\), donde \(m = 0, 1, \dots, 9\) son 10 combinaciones lineales de activaciones en la segunda capa.
La función de activación de salida codifica la función softmax:
\[ f_m(X) = \mathbb{P}(Y = m \mid X) = \frac{e^{Z_m}}{\sum_{\ell=0}^9 e^{Z_\ell}}. \]
\[ - \sum_{i=1}^n \sum_{m=0}^9 y_{im} \log(f_m(x_i)). \]
| Método | Error de prueba |
|---|---|
| Red neuronal + Regularización Ridge | 2.3% |
| Red neuroral + Regularización Dropout | 1.8% |
| Regresión logística multinomial | 7.2% |
| Análisis discriminante lineal | 12.7% |
CIFAR100.Imágen de entrada: \(\begin{bmatrix} a & b & c \\ d & e & f \\ g & h & i \\ j & k & l \end{bmatrix}\)
Filtro de Convolución: \(\begin{bmatrix} \alpha & \beta \\ \gamma & \delta \end{bmatrix}\)
Imágen Convolucionada: \(\begin{bmatrix} a\alpha + b\beta + d\gamma + e\delta & b\alpha + c\beta + e\gamma + f\delta \\ d\alpha + e\beta + g\gamma + h\delta & e\alpha + f\beta + h\gamma + i\delta \\ g\alpha + h\beta + j\gamma + k\delta & h\alpha + i\beta + k\gamma + l\delta \end{bmatrix}.\)
\[ \begin{bmatrix} 1 & 2 & 5 & 3 \\ 3 & 0 & 1 & 2 \\ 2 & 1 & 3 & 4 \\ 1 & 1 & 2 & 0 \end{bmatrix} \rightarrow \begin{bmatrix} 3 & 5 \\ 2 & 4 \end{bmatrix}. \]
ResNet-50, entrenada en la base de datos de imágenes ImageNet con 1000 clases, tiene 50 capas.Las RNNs (Redes Neuronales Recurrentes) construyen modelos que consideran la naturaleza secuencial de los datos y construyen una memoria del pasado.
La característica para cada observación es una secuencia de vectores:
\[ X = \{X_1, X_2, \dots, X_L\}. \]
El objetivo \(Y\) a menudo es una variable o una clase.
Sin embargo, \(Y\) también puede ser una secuencia, como el mismo documento en un idioma diferente.
La capa oculta es una secuencia de vectores \(A_\ell\), que recibe como entrada \(X_\ell\) así como \(A_{\ell-1}\). \(A_\ell\) produce una salida \(O\ell\).
Los mismos pesos \(W\), \(U\) y \(B\) se utilizan en cada paso de la secuencia (de ahí el término recurrente).
La secuencia \(A_\ell\) representa un modelo en evolución para la respuesta, que se actualiza a medida que cada elemento \(X_\ell\) es procesado.
Las redes neuronales intentan minimizar una función objetivo que es no-convexa
La mayoría de las aplicaciones y frameworks de trabajo utilizan Descenso del gradiente (que de por sí es lento)
Es recomendable utilizar un early stopping (o parada temprana) para que el modelo no sobreajuste.
En vez de la red aprenda de todos los datos disponibles al mismo tiempo, es recomendable usar pequeños minibatch de datos.
Por ejemplo, si tengo \(60.000\) observaciones, podemos ir calculando en grupos de 128 observaciones, para un total de \(60.000/128 \approx 469\) épocas (epochs) de cómputo.
El método de dropout learning, elimina conexiones entre neuronas de manera aleatoria con una probabilidad dada, y reescala los pesos de las conexiones mantenidas.